﻿using System.Threading;

namespace HYGE.AsyncCommand
{
    /// <summary>
    /// IAsyncCommandで発行するIAsyncJobをキャンセル操作対応させる際に使用するインターフェース。
    /// IAsyncCommand作成時に指定するexecuteAsyncデリゲートがこの型の引数を取る場合に、IAsyncJob実装はキャンセル操作をサポートする。
    /// IAsyncJobがキャンセルされた場合、このインターフェースの持つCancellationTokenがIsCancellationRequestedになる。
    /// </summary>
    public interface ICancelableAsyncJobParameter
    {
        #region Properties

        #region CancellationToken
        /// <summary>
        /// キャンセル操作に使用するCancellationToken。
        /// </summary>
        CancellationToken CancellationToken
        {
            get;
            set;
        }
        #endregion

        #endregion
    }
}
